<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Slice Objects &mdash; Python v2.6.2 documentation</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '2.6.2',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="search" type="application/opensearchdescription+xml"
          title="Search within Python v2.6.2 documentation"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="copyright" title="Copyright" href="../copyright.html" />
    <link rel="top" title="Python v2.6.2 documentation" href="../index.html" />
    <link rel="up" title="Concrete Objects Layer" href="concrete.html" />
    <link rel="next" title="Weak Reference Objects" href="weakref.html" />
    <link rel="prev" title="Descriptor Objects" href="descriptor.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
 

  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../modindex.html" title="Global Module Index"
             accesskey="M">modules</a> |</li>
        <li class="right" >
          <a href="weakref.html" title="Weak Reference Objects"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="descriptor.html" title="Descriptor Objects"
             accesskey="P">previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">Python v2.6.2 documentation</a> &raquo;</li>

          <li><a href="index.html" >Python/C API Reference Manual</a> &raquo;</li>
          <li><a href="concrete.html" accesskey="U">Concrete Objects Layer</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="slice-objects">
<span id="id1"></span><h1>Slice Objects<a class="headerlink" href="#slice-objects" title="Permalink to this headline">¶</a></h1>
<dl class="cvar">
<dt id="PySlice_Type">
<a title="PyTypeObject" class="reference external" href="type.html#PyTypeObject">PyTypeObject</a> <tt class="descname">PySlice_Type</tt><a class="headerlink" href="#PySlice_Type" title="Permalink to this definition">¶</a></dt>
<dd><p id="index-140">The type object for slice objects.  This is the same as <tt class="docutils literal"><span class="pre">slice</span></tt> and
<tt class="docutils literal"><span class="pre">types.SliceType</span></tt>.</p>
</dd></dl>

<dl class="cfunction">
<dt id="PySlice_Check">
int <tt class="descname">PySlice_Check</tt><big>(</big><a title="PyObject" class="reference external" href="structures.html#PyObject">PyObject</a><em> *ob</em><big>)</big><a class="headerlink" href="#PySlice_Check" title="Permalink to this definition">¶</a></dt>
<dd>Return true if <em>ob</em> is a slice object; <em>ob</em> must not be <em>NULL</em>.</dd></dl>

<dl class="cfunction">
<dt id="PySlice_New">
<a title="PyObject" class="reference external" href="structures.html#PyObject">PyObject</a>* <tt class="descname">PySlice_New</tt><big>(</big><a title="PyObject" class="reference external" href="structures.html#PyObject">PyObject</a><em> *start</em>, <a title="PyObject" class="reference external" href="structures.html#PyObject">PyObject</a><em> *stop</em>, <a title="PyObject" class="reference external" href="structures.html#PyObject">PyObject</a><em> *step</em><big>)</big><a class="headerlink" href="#PySlice_New" title="Permalink to this definition">¶</a></dt>
<dd><em class="refcount">Return value: New reference.</em><p>Return a new slice object with the given values.  The <em>start</em>, <em>stop</em>, and
<em>step</em> parameters are used as the values of the slice object attributes of the
same names.  Any of the values may be <em>NULL</em>, in which case the <tt class="xref docutils literal"><span class="pre">None</span></tt> will be
used for the corresponding attribute.  Return <em>NULL</em> if the new object could not
be allocated.</p>
</dd></dl>

<dl class="cfunction">
<dt id="PySlice_GetIndices">
int <tt class="descname">PySlice_GetIndices</tt><big>(</big>PySliceObject<em> *slice</em>, Py_ssize_t<em> length</em>, Py_ssize_t<em> *start</em>, Py_ssize_t<em> *stop</em>, Py_ssize_t<em> *step</em><big>)</big><a class="headerlink" href="#PySlice_GetIndices" title="Permalink to this definition">¶</a></dt>
<dd><p>Retrieve the start, stop and step indices from the slice object <em>slice</em>,
assuming a sequence of length <em>length</em>. Treats indices greater than <em>length</em> as
errors.</p>
<p>Returns 0 on success and -1 on error with no exception set (unless one of the
indices was not <a title="None" class="reference external" href="../library/constants.html#None"><tt class="xref xref docutils literal"><span class="pre">None</span></tt></a> and failed to be converted to an integer, in which
case -1 is returned with an exception set).</p>
<p>You probably do not want to use this function.  If you want to use slice objects
in versions of Python prior to 2.3, you would probably do well to incorporate
the source of <a title="PySlice_GetIndicesEx" class="reference internal" href="#PySlice_GetIndicesEx"><tt class="xref docutils literal"><span class="pre">PySlice_GetIndicesEx</span></tt></a>, suitably renamed, in the source of
your extension.</p>
</dd></dl>

<dl class="cfunction">
<dt id="PySlice_GetIndicesEx">
int <tt class="descname">PySlice_GetIndicesEx</tt><big>(</big>PySliceObject<em> *slice</em>, Py_ssize_t<em> length</em>, Py_ssize_t<em> *start</em>, Py_ssize_t<em> *stop</em>, Py_ssize_t<em> *step</em>, Py_ssize_t<em> *slicelength</em><big>)</big><a class="headerlink" href="#PySlice_GetIndicesEx" title="Permalink to this definition">¶</a></dt>
<dd><p>Usable replacement for <a title="PySlice_GetIndices" class="reference internal" href="#PySlice_GetIndices"><tt class="xref docutils literal"><span class="pre">PySlice_GetIndices</span></tt></a>.  Retrieve the start, stop,
and step indices from the slice object <em>slice</em> assuming a sequence of length
<em>length</em>, and store the length of the slice in <em>slicelength</em>.  Out of bounds
indices are clipped in a manner consistent with the handling of normal slices.</p>
<p>Returns 0 on success and -1 on error with exception set.</p>
<p>
<span class="versionmodified">New in version 2.3.</span></p>
</dd></dl>

</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h4>Previous topic</h4>
            <p class="topless"><a href="descriptor.html"
                                  title="previous chapter">Descriptor Objects</a></p>
            <h4>Next topic</h4>
            <p class="topless"><a href="weakref.html"
                                  title="next chapter">Weak Reference Objects</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="../_sources/c-api/slice.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="../search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../modindex.html" title="Global Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="weakref.html" title="Weak Reference Objects"
             >next</a> |</li>
        <li class="right" >
          <a href="descriptor.html" title="Descriptor Objects"
             >previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">Python v2.6.2 documentation</a> &raquo;</li>

          <li><a href="index.html" >Python/C API Reference Manual</a> &raquo;</li>
          <li><a href="concrete.html" >Concrete Objects Layer</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; <a href="../copyright.html">Copyright</a> 1990-2009, Python Software Foundation.
      Last updated on Apr 15, 2009.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.1.
    </div>
  </body>
</html>